---
title: Quota
description: A template that represents a quota allocation request
location: https://istio.io/docs/reference/config/policy-and-telemetry/templates/quota.html
layout: protoc-gen-docs
generator: protoc-gen-docs
aliases:
  - /docs/reference/config/template/quota.html
number_of_entries: 2
---
<p>The <code>quota</code> template represents an item for which to check quota.</p>

<p>Example config:</p>

<pre><code>apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: quota
metadata:
  name: requestcount
  namespace: istio-system
spec:
  dimensions:
    source: source.labels[&quot;app&quot;] | source.service | &quot;unknown&quot;
    sourceVersion: source.labels[&quot;version&quot;] | &quot;unknown&quot;
    destination: destination.labels[&quot;app&quot;] | destination.service | &quot;unknown&quot;
    destinationVersion: destination.labels[&quot;version&quot;] | &quot;unknown&quot;
</code></pre>

<h2 id="Template">Template</h2>
<section>
<p>The <code>quota</code> template represents a piece of data to check Quota for.</p>

<p>When writing the configuration, the value for the fields associated with this template can either be a
literal or an <a href="https://istio.io/docs/reference//config/policy-and-telemetry/expression-language/">expression</a>. Please note that if the datatype of a field is not istio.policy.v1beta1.Value,
then the expression&rsquo;s <a href="https://istio.io/docs/reference//config/policy-and-telemetry/expression-language/#type-checking">inferred type</a> must match the datatype of the field.</p>

<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Template-dimensions">
<td><code>dimensions</code></td>
<td><code>map&lt;string,&nbsp;<a href="#istio-policy-v1beta1-Value">istio.policy.v1beta1.Value</a>&gt;</code></td>
<td>
<p>The unique identity of the particular quota to manipulate.</p>

</td>
</tr>
</tbody>
</table>
</section>
<h2 id="istio-policy-v1beta1-Value">istio.policy.v1beta1.Value</h2>
<section>
<p>An instance field of type Value denotes that the expression for the field is of dynamic type and can evalaute to any
<em>ValueType</em> enum values. For example, when
authoring an instance configuration for a template that has a field <code>data</code> of type <code>istio.policy.v1beta1.Value</code>,
both of the following expressions are valid <code>data: source.ip | ip(&quot;0.0.0.0&quot;)</code>, <code>data: request.id | &quot;&quot;</code>;
the resulting type is either ValueType.IP_ADDRESS or ValueType.STRING for the two cases respectively.</p>

<p>Objects of type Value are also passed to the adapters during request-time. There is a 1:1 mapping between
oneof fields in <code>Value</code> and enum values inside <code>ValueType</code>. Depending on the expression&rsquo;s evaluated <code>ValueType</code>,
the equivalent oneof field in <code>Value</code> is populated by Mixer and passed to the adapters.</p>

<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="istio-policy-v1beta1-Value-string_value" class="oneof oneof-start">
<td><code>stringValue</code></td>
<td><code>string (oneof)</code></td>
<td>
<p>Used for values of type STRING</p>

</td>
</tr>
<tr id="istio-policy-v1beta1-Value-int64_value" class="oneof">
<td><code>int64Value</code></td>
<td><code>int64 (oneof)</code></td>
<td>
<p>Used for values of type INT64</p>

</td>
</tr>
<tr id="istio-policy-v1beta1-Value-double_value" class="oneof">
<td><code>doubleValue</code></td>
<td><code>double (oneof)</code></td>
<td>
<p>Used for values of type DOUBLE</p>

</td>
</tr>
<tr id="istio-policy-v1beta1-Value-bool_value" class="oneof">
<td><code>boolValue</code></td>
<td><code>bool (oneof)</code></td>
<td>
<p>Used for values of type BOOL</p>

</td>
</tr>
<tr id="istio-policy-v1beta1-Value-ip_address_value" class="oneof">
<td><code>ipAddressValue</code></td>
<td><code><a href="#istio-policy-v1beta1-IPAddress">istio.policy.v1beta1.IPAddress (oneof)</a></code></td>
<td>
<p>Used for values of type IPAddress</p>

</td>
</tr>
<tr id="istio-policy-v1beta1-Value-timestamp_value" class="oneof">
<td><code>timestampValue</code></td>
<td><code><a href="#istio-policy-v1beta1-TimeStamp">istio.policy.v1beta1.TimeStamp (oneof)</a></code></td>
<td>
<p>Used for values of type TIMESTAMP</p>

</td>
</tr>
<tr id="istio-policy-v1beta1-Value-duration_value" class="oneof">
<td><code>durationValue</code></td>
<td><code><a href="#istio-policy-v1beta1-Duration">istio.policy.v1beta1.Duration (oneof)</a></code></td>
<td>
<p>Used for values of type DURATION</p>

</td>
</tr>
<tr id="istio-policy-v1beta1-Value-email_address_value" class="oneof">
<td><code>emailAddressValue</code></td>
<td><code><a href="#istio-policy-v1beta1-EmailAddress">istio.policy.v1beta1.EmailAddress (oneof)</a></code></td>
<td>
<p>Used for values of type EmailAddress</p>

</td>
</tr>
<tr id="istio-policy-v1beta1-Value-dns_name_value" class="oneof">
<td><code>dnsNameValue</code></td>
<td><code><a href="#istio-policy-v1beta1-DNSName">istio.policy.v1beta1.DNSName (oneof)</a></code></td>
<td>
<p>Used for values of type DNSName</p>

</td>
</tr>
<tr id="istio-policy-v1beta1-Value-uri_value" class="oneof">
<td><code>uriValue</code></td>
<td><code><a href="#istio-policy-v1beta1-Uri">istio.policy.v1beta1.Uri (oneof)</a></code></td>
<td>
<p>Used for values of type Uri</p>

</td>
</tr>
</tbody>
</table>
</section>
